﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp_9_14_class
{
   
    internal class Program//1   主类又只有一个   ,要调用一定要写在主函数里
    {
      public  static void Main(string[] args)//像Java
        {
           // Console.WriteLine("Hello world");
           Conso1WR();
            //ChangN();
        }
       
        #region 类型   2
        public static void var()
        {
            byte b = 255;//占用内存: byte 类型占用 1 个字节（8 位）的内存。
            // byte 类型可以存储的值从 0 到 255   类比unsigned int 

            double d = 0;
            float f = 0f;//c#和java都用f c++可以不用

        }
        #endregion
        #region  输入输出3 ReadLine(0只接受string 所以要求数字相加就要Prase  或者convert
        public static void Conso1WR() {
            //  Console.WriteLine("123");//换行
            Console.WriteLine("请输入:");
            // Console.Read();
            
            string a=Console.ReadLine();
            string b=Console.ReadLine();
            int k1 = Convert.ToInt32(a);
            int k2 = Convert.ToInt32(b);

            Console.WriteLine(k1+k2);//如果是a,b 那么就是string相加    23 

        }
        #endregion
        #region  数据转换4 parse()      //cw  tab 快捷键         for tab tab  再换到下一行
        public static void ChangN()
        {
            //string s = "10";
            //string i = s;

            //short a = 10;
            //int  b= a;
            //Console.WriteLine(b);

            //short s1 = 10;
            //int c = (int)s1;
            //Console.WriteLine("");//转低位


            //int k = 30;
            //string str=System.Convert.ToString(k);//System的函数
            //Console.WriteLine(str);
            //uint d = 0;//正整数

            string str1 = "40";
            int k1 = Convert.ToInt32(str1);
            Console.WriteLine(k1);


            //使用parse()
            string str2 = "50";
            int k3= int.Parse(str2);
            Console.WriteLine(k3);

          
        }
        #endregion

        
    }
}












//在 C# 中，static 关键字的作用是定义类的成员为静态的，也就是说，它们属于类本身，而不是类的某个实例。下面解释了 static 在 Main 方法中的具体作用：

//static 的作用
//不需要创建类的实例:

//static 方法属于类本身，而不是类的实例。由于 Main 方法是程序的入口点，它在程序启动时被调用，此时还没有创建任何类的实例。所以，Main 方法必须是 static 的，这样可以在没有实例化 Program 类的情况下直接调用它。
//全局访问:

//静态方法可以被类的任何部分访问，只要你知道类的名称。这使得它们在需要全局或共享功能时非常有用。在 Main 方法的情况下，它作为程序的入口点，必须是 static，以便在程序启动时可以直接访问和执行。
//Main 方法的 static 是必要的吗？
//是的，Main 方法的 static 是必需的。在 C# 程序中，Main 方法是程序的入口点。操作系统或 .NET 运行时通过直接调用 Main 方法来启动程序，而在调用之前不会实例化包含 Main 方法的类。因此，Main 方法必须是 static，以便可以在没有创建类实例的情况下被调用。

//示例对比
//静态 Main 方法（正确）
//csharp
//public class Program
//{
//    public static void Main(string[] args)
//    {
//        // 程序逻辑
//    }
//}
//非静态 Main 方法（错误）
//csharp
//public class Program
//{
//    public void Main(string[] args)
//    {
//        // 程序逻辑
//    }
//}
//在第二个示例中，Main 方法不是 static 的，运行时将无法调用它，因为程序启动时没有 Program 类的实例。这会导致编译错误或程序无法启动。

//总结，static 关键字在定义 Main 方法时是必须的，因为它允许在没有类实例的情况下启动程序并调用 Main 方法,如果不用static的函数,就一定话实例化Program
